<html><head>
      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
   <title>Part&nbsp;I.&nbsp;Overview of Spring Framework</title><link rel="stylesheet" href="css/stylesheet.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.74.0"><link rel="home" href="index.html" title="Reference Documentation"><link rel="up" href="index.html" title="Reference Documentation"><link rel="prev" href="index.html" title="Reference Documentation"><link rel="next" href="overview.html" title="1.&nbsp;Introduction to Spring Framework"><!--Begin Google Analytics code--><script type="text/javascript">
			var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
			document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
		</script><script type="text/javascript">
			var pageTracker = _gat._getTracker("UA-2728886-3");
			pageTracker._setDomainName("none");
			pageTracker._setAllowLinker(true);
			pageTracker._trackPageview();
		</script><!--End Google Analytics code--></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Part&nbsp;I.&nbsp;Overview of Spring Framework</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="index.html">Prev</a>&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="overview.html">Next</a></td></tr></table><hr></div><div class="part" lang="en"><div class="titlepage"><div><div><h1 class="title"><a name="spring-introduction"></a>Part&nbsp;I.&nbsp;Overview of Spring Framework</h1></div></div></div><div class="partintro" lang="en"><div></div><p>The Spring Framework is a lightweight solution and a potential
      one-stop-shop for building your enterprise-ready applications. However,
      Spring is modular, allowing you to use only those parts that you need,
      without having to bring in the rest. You can use the IoC container, with
      Struts on top, but you can also use only the <a class="link" href="orm.html#orm-hibernate" title="13.3&nbsp;Hibernate">Hibernate integration code</a> or the <a class="link" href="jdbc.html#jdbc-introduction" title="12.1&nbsp;Introduction to Spring Framework JDBC">JDBC abstraction layer</a>. The Spring
      Framework supports declarative transaction management, remote access to
      your logic through RMI or web services, and various options for
      persisting your data. It offers a full-featured <a class="link" href="mvc.html#mvc-introduction" title="15.1&nbsp;Introduction to Spring Web MVC framework">MVC framework</a>, and enables you to
      integrate <a class="link" href="aop.html#aop-introduction" title="7.1&nbsp;Introduction">AOP</a> transparently into
      your software.</p><p>Spring is designed to be non-intrusive, meaning that your domain
      logic code generally has no dependencies on the framework itself. In
      your integration layer (such as the data access layer), some
      dependencies on the data access technology and the Spring libraries will
      exist. However, it should be easy to isolate these dependencies from the
      rest of your code base.</p><p>This document is a reference guide to Spring Framework features.
      If you have any requests, comments, or questions on this document,
      please post them on the user mailing list or on the support forums at
      <a class="ulink" href="http://forum.springsource.org/" target="_top">http://forum.springsource.org/</a>.</p></div></div><!--Begin LoopFuse code--><script src="http://loopfuse.net/webrecorder/js/listen.js" type="text/javascript"></script><script type="text/javascript">
			_lf_cid = "LF_48be82fa";
			_lf_remora();
		</script><!--End LoopFuse code--><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="index.html">Prev</a>&nbsp;</td><td width="20%" align="center">&nbsp;</td><td width="40%" align="right">&nbsp;<a accesskey="n" href="overview.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Reference Documentation&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">&nbsp;1.&nbsp;Introduction to Spring Framework</td></tr></table></div><!-- Begin 2nd Google code - a mod -->
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));</script>
<script type="text/javascript">
var OrgTracker = _gat._getTracker("UA-2728886-2"); OrgTracker._setDomainName("none");
OrgTracker._setAllowLinker(true);
OrgTracker._trackPageview();
</script>
 <!-- End 2nd Google code -->


<script type="text/javascript">

function detectLastFrame() {
   var thisF = this.window;
   var allF = parent.top.frames;
   return allF[allF.length - 1] == thisF; }

// Only inject the following code if this is a normal page or the last // frame of a frameset.
if (parent.top.frames.length == 0 || detectLastFrame()) {
    // Inject the SpringSource search widget too.
    document.write(unescape("%3Cscript src='http://search.springsource.org/widget/searchtool.js' type='text/javascript'%3E%3C/script%3E"));
    // Inject the Eloqua code
    document.write(unescape("%3Cscript src='/elqNow/elqCfg.js' type='text/javascript'%3E%3C/script%3E"));
    document.write(unescape("%3Cscript src='/elqNow/elqImg.js' type='text/javascript'%3E%3C/script%3E"));

}
</script>
</body>
</html>